#ifndef OPERACION_H_
#define OPERACION_H_
#include <iostream>
#include <string>
#include <stdlib.h>
#include <string.h>
#include "commonConfig.h"

class Parser;
class Operacion {
private:
	int id;
	char codigoOperacion;
	std::string clave;
	std::string valor;

public:
	Operacion();
	virtual ~Operacion();
	std::string getClave() const;
    int getId() const;
    char getCodigoOperacion() const;
    std::string getValor() const;
    void setClave(std::string& clave);
    void setId(int id);
    void setCodigoOperacion(char operacion);
    void setValor(std::string& valor);

    /* Verifica si es una de las operaciones soportadas por el protocolo.*/
    bool valida();

    friend std::istream &operator>> (std::istream &, Operacion&);

	/* Convierte una operacion a un string.*/
	std::string toString();
};

#endif /* OPERACION_H_ */
